package org.liang.code.jms.queue.more;

import jakarta.jms.*;
import org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory;
import org.liang.code.utils.jms.JMSCommons;

/**
 * 非破坏性队列 消费者消费后 依旧存储在消息队列中
 */
public class NDQMain {

    public static void main(String[] args) throws JMSException {

        // 创建工厂
        ActiveMQJMSConnectionFactory factory = new ActiveMQJMSConnectionFactory(JMSCommons.CORE_URL, JMSCommons.USERNAME, JMSCommons.PASSWORD);
        // 创建JMSContext
        JMSContext context = factory.createContext(Session.AUTO_ACKNOWLEDGE);
        // 生产者
        JMSProducer producer = context.createProducer();

        Queue queue = context.createQueue(JMSCommons.CORE_NDQ);

        // 创建消息
        TextMessage message = context.createTextMessage("我不会消失!");

        // 发送消息
        producer.send(queue, message);

        // 消费者
        JMSConsumer consumer = context.createConsumer(queue);
        // 读取消息
        Message receive = consumer.receive(100);
        // 打印消息
        System.out.println(receive.getBody(String.class));

        consumer.close();
        context.close();
        factory.close();
    }
}
